This invention is related in general to networks and more specifically relates to systems and methods for controlling how services are applied to data in a network.
For the purposes of the present discussion, services may be any software or hardware applications that implement actions on information. Network services are employed in various demanding applications including network security, voice services, load balancing, and network analysis for various enterprise networks, such as data centers and Internet-Service-Provider (ISP) networks. Such applications demand versatile mechanisms for efficiently applying network services to data.
Conventionally, network data is encapsulated and transferred in packets. Packets may be sent sequentially through various service nodes, which may be applications that implement various services. Alternatively, a network device, such as a router, will analyze each packet independently and then send each packet to specific service nodes based on the analysis, but without knowledge of previous services applied to each packet.
Unfortunately, such systems and methods for provisioning services often result in complex services that are difficult to deploy, and often further result in redundant processing as packets sent between devices must be reanalyzed and classified by each device to determine which services shall be applied to a packet. Furthermore reclassification at each network device may cause application of redundant services to a given packet, and the services may be applied in a suboptimal order. Accordingly, network throughput and resources may be compromised by use of inefficient service provisioning systems and methods.